#include<bits/stdc++.h>
using namespace std;
inline long long read(){
    long long x;
    scanf("%lld",&x);
    return x;
}
int main(){
    long long num=read(),time=read();
    long long a[100020];
    for(int i=0;i<num;i++){
        a[i]=read();
    }
    for(int i=0;i<time;i++){
        long long way=read(),x=read(),y=read();
        if(way==1){
            for(int i=x;i<=y;i++){
                a[i]+=y;
            }
        }
        else {
            long long mAx=-0x3f3f3f3f;
            for(int i=x;i<=y;i++){
                mAx=max(mAx,a[i]);
            }
            printf("%lld\n",mAx);
        }
    }
}